package edu.service;

import edu.vo.Score;
import edu.vo.ID.ScoreId;

import java.util.List;
import java.util.Optional;

public interface ScoreService {
    /**
     * 保存成绩信息
     * @param score 成绩对象
     * @return 保存后的成绩对象
     */
    Score saveScore(Score score);

    /**
     * 根据ID获取成绩信息
     * @param id 成绩ID
     * @return 成绩对象的Optional包装
     */
    Optional<Score> getScoreById(ScoreId id);

    /**
     * 获取所有成绩信息
     * @return 成绩列表
     */
    List<Score> getAllScores();

    /**
     * 根据ID删除成绩信息
     * @param id 成绩ID
     */
    void deleteScoreById(ScoreId id);

    /**
     * 更新成绩信息
     * @param id 成绩ID
     * @param score 新的成绩信息
     * @return 更新后的成绩对象
     */
    Score updateScore(ScoreId id, Score score);
}